package com.pingan.haofang.searchcloud.common.utils;

import java.util.UUID;

import org.slf4j.MDC;

import com.pingan.haofang.gov.sm.account.common.UserThreadContext;
import com.pingan.haofang.searchcloud.common.constants.Constants;

/**
 * trace工具
 *
 * @author LUYI374
 * @date 2017年3月10日
 * @since 1.0.0
 */
public class RequestTraceUtil {


    /**
     * 会话开始
     */
    public static void requestTraceStart() {
        String requestId = generateRequestId();
        MDC.put(Constants.REQUEST_ID, requestId);
        UserThreadContext.putRequestId(requestId);
    }

    /**
     * 会话结束
     */
    public static void requestTraceEnd() {
        MDC.clear();
        UserThreadContext.removeAll();
    }

    /**
     * 生成跟踪ID
     *
     * @return
     */
    private static String generateRequestId() {
        return UUID.randomUUID().toString();
    }
}
